import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.util.ArrayList;

import javax.swing.JPanel;

public class EnemySwam extends JPanel {

	public Image image;
	public int x, y;

	ArrayList<Point> points1 = new ArrayList<Point>(1000);

	private long prevChangeTime = 500;
	// 숫자가 높을수록 화면이 느리게 보임
	private long changeSpeed = 1;

	Rectangle rect;

	public boolean active;

	public EnemySwam(Image image) {
		this.image = image;
		x = 800;
		y = (int) (Math.random() * (320 - image.getHeight(null)));

		rect = new Rectangle(image.getWidth(null), image.getHeight(null));

		for (int i = 0; i < 100; i++) {
			Point point = new Point();
			point.x = (int) (Math.random() * 5);
			point.y = (int) (Math.random() * 5);
			points1.add(point);
		}

	}

	public void render(Graphics g) {

		if (active) {
			g.drawImage(image, x, y, null);
		}

	}

	public void update() {

		// ///////////////////////////////////////////////////////////////////////////
		// 지렁이 발사되는 구문 , 미사일 발사 각
		// 미사일 적 출동 구문, 동작 각도
		long currentTime = System.currentTimeMillis();
		for (int i = 0; i < 100; i++) {
			if (currentTime - prevChangeTime > changeSpeed) {
				x = x - (int) changeSpeed - points1.get(i).x;
				prevChangeTime = currentTime;
			}
		}

		// 이미지 파일이 밖으로 빠져나가면(맨 왼쪽 == 0) active가 비활성화 되도록 설정
		if (x < 0 - image.getWidth(null)) {
			active = false;
		}

	}

	public Rectangle getArea() {
		rect.x = x;
		rect.y = y;
		return rect;
	}

}
